/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package educar.controllers;

import Actividad.ActividadController;
import educar.gui.PrincipalDocenteView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JOptionPane;

/**
 *Esta clase funciona como mediador (escuchador), resepta(captura) los eventos de acciones
 * y de ventana, esta clase se comunica con las clases ActividadController
 * y con CalificarController, esta clase es invocada por la clase 
 * Mediadora de login, LoginController.
 * @author Flubber
 */
public class PrincipalDocenteController implements ActionListener, WindowListener {
    
    //Atributo usado para crer una vista que maneja el Docente (ventana)
    private PrincipalDocenteView principalDocenteView;
    
// <editor-fold defaultstate="collapsed" desc="Constructor">
    /**
     * <hr>
     * PrincipalDocenteController(): Constructor de la clase PrincipalDocenteController
     * <hr>
     */
    public PrincipalDocenteController(){        
        principalDocenteView = new PrincipalDocenteView();
        principalDocenteView.setListenerButton(this);
        principalDocenteView.setListenerWindow(this);
    }
 // </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Accion setView">
    /**
     * <hr>
     * setView(): Hace visible a una ventana de PrincipalDocenteController.
     * <hr>
     */    
    public void setView() {
        principalDocenteView.setVisible(true);
    }
// </editor-fold>
    
// <editor-fold defaultstate="collapsed" desc="Action Performed">
    /**
     * <hr>
     * actionPerformed():metodo que recibe un evento de un boton y dependiendo de
     * este evento llama a los diferentes controladores.
     * <hr>
     * @param e 
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        //Atributo usado para verificar procedencia (boton)       
        Object source = e.getSource();
        if (principalDocenteView.getJbActividad() == source) {  //Boton Actividad
            ActividadController actividadController = new ActividadController(this);
            actividadController.setView();
            principalDocenteView.setVisible(false);
            }
        if (principalDocenteView.getJbCalificar() == source) {  //Boton Calificar
            //CalificarController calificarController = new CalificarController(this);
            //calificarController.setView();
            //principalDocenteView.setVisible(false);        
        }
    }//Fin del metodo actionPerformed().
 // </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Metodos auxiliares usados">    
    /**
     * <hr>
     * windowClosing():metodo que recibe un evento de una ventana y dependiendo de
     * este evento realiza las operaciones necesarias.
     * <hr>
     * @param e 
     */
    @Override
    public void windowClosing(WindowEvent e) {    
        Object source = e.getSource();
        if (principalDocenteView.getVentana() == source) {
            int op = JOptionPane.showConfirmDialog(null,"Esta seguro que desea salir de la aplicacion?","Confirmar cierre del programa", JOptionPane.YES_NO_OPTION);
            if (op == JOptionPane.YES_OPTION){
                System.exit(0);
            }
        }
    }
// </editor-fold>    

// <editor-fold defaultstate="collapsed" desc="Acciones No Usada">
    @Override
    public void windowOpened(WindowEvent e) {
    }

    @Override
    public void windowClosed(WindowEvent e) {
    }

    @Override
    public void windowIconified(WindowEvent e) {
    }

    @Override
    public void windowDeiconified(WindowEvent e) {
    }

    @Override
    public void windowActivated(WindowEvent e) {
    }

    @Override
    public void windowDeactivated(WindowEvent e) {
    }
  // </editor-fold>  
  
}//Fin de la clase PrincipalDocenteController.   